setwd("D:/杨熊冰/R语言/实验报告/data for class3")
setwd("D:/杨熊冰/R语言/实验报告/data for class3/GSE67835") #设置到数据文件夹路径
files <- list.files(pattern = ".csv") #获取csv文件名
library(openxlsx)
col_names <- gsub("_.*","",files) #将_后面的字符去掉
for (i in 1:length(files)) {
  datax <- read.table(files[i]) #读取第i个csv文件
  colnames(datax) <- c("ID", col_names[i]) #设置列名
  if(i == 1) {
    merged_data <- datax #第一个循环只建立merged_data
  } else {
    merged_data <- merge(merged_data, datax) #合并
  }
} #循环依次读取并合并
rownames(merged_data) <- merged_data$ID;
merged_data <- merged_data[,-1]; #ID列放入行名
files <- list.files(pattern = "*.txt") #获取txt文件名
GSE_txt<-read.table(file = files,skip = 35,nrows = 42) #读取meta信息那些行
metainfo <- rbind(GSE_txt[2,],GSE_txt[10:12,]) #提取tissue, cell type,和age的信息
metainfo <- metainfo[,-1] #删除第一列
colnames(metainfo)<-metainfo[1,] 
metainfo <- metainfo[-1,] #设置列名
rownames(metainfo) <- c("tissue","cell_type","age") #设置行名
metainfo <- apply(metainfo, 2, gsub, pattern = ".*: ",replace  = "") #去掉:前的字符
metainfo <- data.frame(metainfo) #转化成数据框
pos <- match(colnames(metainfo),colnames(merged_data)) #查看metainfo在merged_data中列的位置排序
metainfo <- metainfo[,pos] #调整列的位置与merged_data保持一致
alldata <- rbind(metainfo, merged_data)
setwd("..") #回到上一级目录
write.xlsx(alldata,file="GSE67835.xlsx") #保存为xlsx文件
write.table(merged_data,file = "GSE67835_data.txt") #存表达量文件,用于实践4